# 日志配置
LOGGING = {
    'version': 1,  # 版本,防止以后会升级
    'disable_existing_loggers': False,  # 是否要禁止其他已经存在的日志管理功能
    'formatters': {  # 日志管理器的格式
        'verbose': {
        # 详情
        # levelname日志等级共有5个等级,可以在官网上看
        # asctime异常发生时的时间 module异常发生时的模块文件在哪
        #lineno第几行 message具体报错信息
            'format': '%(levelname)s %(asctime)s %(module)s %(lineno)d %(message)s'
        },
        'simple': {  # 简单 在控制台显示
            'format': '%(levelname)s %(module)s %(lineno)d %(message)s'
        },
    },
    'filters': {  # 过滤器
        'require_debug_true': {  # debug等于true时是否把过滤器加进来
            '()': 'django.utils.log.RequireDebugTrue',
        },
    },
    'handlers': {
        'console': {  # 终端配置
            'level': 'DEBUG',  # 把DEBUG的信息显示出来
            'filters': ['require_debug_true'],  # 当debug等于true时是否要过滤,要,不然会显示双份数据
            'class': 'logging.StreamHandler', # 使用什么核心类来输出日志
            'formatter': 'simple'  # 输出格式,与上面的simple对应
        },
        'file': {  # 文件记录
            'level': 'INFO',
            'class': 'logging.handlers.RotatingFileHandler',
            # 日志位置,日志文件名,日志保存目录必须手动创建
            'filename': os.path.join(os.path.dirname(BASE_DIR), "logs/demo1.log"),
            # 日志文件的最大值,这里我们设置300M
            'maxBytes': 300 * 1024 * 1024,
            # 日志文件的数量,设置最大日志数量为10
            'backupCount': 10,
            # 日志格式:详细格式
            'formatter': 'verbose'
        },
    },
    # 日志对象
    'loggers': {
        'django': { # 必须是django,名字不能改 因为要用django来调用
            'handlers': ['console', 'file'],
            'propagate': True, # 是否让日志信息继续冒泡给其他的日志处理系统
        },
    }
}
